package com.dap.cms.base;


import com.dap.dao.BasePo;
import com.dap.dao.model.QueryResult;

import java.util.List;

/**
 * @description: 基本服务类，实现基本的增删改查操作
 * @author: Fesine
 * @createTime:2017/10/25
 * @update:修改内容
 * @author: Fesine
 * @updateTime:2017/10/25
 */
public interface IBaseService<T extends BasePo> {
    /**
     * 添加对象服务
     * @param po
     * @return 返回操作记录值
     */
     int save(T po);

    /**
     * 更新对象服务
     * @param po
     * @return 返回操作记录值
     */
    int update(T po);

    /**
     * 删除对象服务
     * @param po
     * @return 返回操作记录值
     */
     int delete(T po);

    /**
     * 获取一个对象
     * @param po
     * @return 返回一个对象
     */
     T get(T po);

    /**
     * 查询所有记录列表
     * @param po
     * @return 返回记录列表
     */
     List<T> listAll(T po);

    /**
     * 分页查询记录列表
     * @param po
     * @param page 当前分页 从1开始
     * @param limit 每页大小 >0
     * @return
     */
     QueryResult<T> listPage(T po, int page, int limit);

    /**
     * 统计记录数
     * @param po
     * @return
     */
     int count(T po);


}
